/** \file
* \par Subversion URL:
* \$URL: http://planar-rendering.googlecode.com/svn/trunk/engine/src/main.cpp $
* \version \$Rev: 76 $
* \date    \$Date: 2009-04-20 02:26:00 +0000 (Mon, 20 Apr 2009) $
*/

#include "setup.h"

#include "context.hpp"

#ifdef WIN32
#define DLLEX __declspec(dllexport)
#endif

extern "C"
{
	/// <summary>
	/// Define an exported global function that performs the fractal generation.
	/// </summary>
	/// <param name="space">The complex space to use to generate the fractal.</param>
	#define CONTEXT(space) \
	DLLEX void func_##space(Context *con, const Context::Func *funcs, double *parms, bool *row) \
	{ \
		con->perform<space_##space>(funcs, parms, row); \
	}

	/// <summary>Export func_quat</summary>
	CONTEXT(quat);
	/// <summary>Export func_coquat</summary>
	CONTEXT(coquat);
	/// <summary>Export func_hypquat</summary>
	CONTEXT(hypquat);
	/// <summary>Export func_hypcplx</summary>
	CONTEXT(hypcplx);
}
